package com.ato.java;

import org.junit.Test;

/**
 * @author wangjing
 * @create 2021--07--29--19:27
 */
public class ObjectTeach {

    public static void main(String[] args) {

        Order order = new Order();
//        获取当前雷类
        System.out.println(order.getClass());
//        获取当前类的父类
        System.out.println(order.getClass().getSuperclass());
        System.out.println(order.toString());
//      order.toString();  Object基类的toString()源码 getClass().getName() + '@' + Integer.toHexString(hashCode())
        System.out.println("*************基本数据类型与包装类的使用***********************");
//        基本数据类型与包装类的使用
        int n1 = 10;
        Integer In = new Integer(n1);
        System.out.println(In.toString());
//       特殊的 :放入String  但是需要是 纯数字这种字符串
        Integer In2 = new Integer("123");
        System.out.println(In2.toString());
        Float f1 = new Float(12.3f);
        Float f2 = new Float("123.4");
//        特殊的： boolean
        Boolean b1 = new Boolean("true");  // true
        Boolean b2 = new Boolean(true); // true
        Boolean b3 = new Boolean("TRUE"); //true
//        结论：  忽略大小写的情况下。只要是true  都是true  其余都是false
        Order o1 = new Order();
//        注意 ： 这里就是null 了。 在Order类中有一个属性：Boolean b4; 注意了。这个是包装类！！！是类了。 类的初始化值是null！！！！
        System.out.println(o1.b4);

        System.out.println("************包装类转基本数据类型************************");
        System.out.println(In.intValue());
        System.out.println(f1.floatValue());
        System.out.println(b1.booleanValue());
        System.out.println("*************自动装箱和自动拆箱********************");
//        自动装箱和自动拆箱
        o1.method(123);
        System.out.println("*************转成String***********************");
//        转成String (由于有自动拆箱和自动装箱，所以包装类和基本数据类型可以 看成  一个 都去转String)
//        方式1：连接运算
        System.out.println(n1+"");
//        方式2 String.valueOf();
        System.out.println(String.valueOf(n1));
        String s1 = "123";
        int i22 = Integer.parseInt(s1);
        System.out.println(i22 );
    }
}

class Order {
    public Boolean b4;

    public void method(Object obj) {
        System.out.println(obj);
    }

    @Override
    public String toString() {
        return "Order{" +
                "age=" + age +
                ", name='" + name + '\'' +
                '}';
    }

    int age;
    String name;

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Order order = (Order) o;
        return age == order.age && name.equals(order.name);
    }

    @Test
    public void test() {
        System.out.println("单元测试");


    }
}